package com.sword.invoice.bean.bo.sales;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

@Setter
@Getter
public class InvoiceLine implements Serializable {
    //商品名称（如invoiceLineProperty =1，
    // 则此商品行为折扣行，折扣行不允许多行折扣，折扣行必须紧邻被折扣行，商品名称必须与被折扣行一致）
    private String goodsName;
    //商品编码
    private String goodsCode;
    //自行编码
    private String selfCode;
    //单价含税标志：0:不含税,1:含税
    private String withTaxFlag;

    //单价（精确到小数点后8位）
    private String price;
    //数量（精确到小数点后8位，开具红票时数量为负数）
    private String num;
    //单位
    private String unit;
    //规格型号
    private String specType;
    //税额
    private String tax;
    //税额（精确到小数点后2位），[不含税金额] * [税率] = [税额]；税额允许误差为 0.06
    private String taxRate;
    //不含税金额
    private String taxExcludedAmount;
    //含税金额
    private String taxIncludedAmount;
    //发票行性质：0,正常行;1,折扣行;2,被折扣行，红票只有正常行
    private String invoiceLineProperty;
    //优惠政策标识：0,不使用;1,使用;
    // 全电发票时： 01：简易征收
    // 02：稀土产品
    // 03：免税
    // 04：不征税
    // 05：先征后退
    // 06：100%先征后退
    // 07：50%先征后退 08：按3%简易征收
    // 09：按5%简易征收
    // 10：按5%简易征收减按1.5%计征
    // 11：即征即退30%
    // 12：即征即退50%
    // 13：即征即退70% 14：即征即退100%
    // 15：超税负3%即征即退
    // 16：超税负8%即征即退
    // 17：超税负12%即征即退
    // 18：超税负6%即征即退
    private String favouredPolicyFlag;
    //增值税特殊管理（优惠政策名称）,当favouredPolicyFlag为1时，此项必填 （全电发票时为空）
    private String favouredPolicyName;
    //扣除额，差额征收时填写，目前只支持填写一项。 注意：当传0、空或字段不传时，
    // 都表示非差额征税；传0.00才表示差额征税：0.00
    private String deduction;
    //零税率标识：空,非零税率;1,免税;2,不征税;3,普通零税率；
    // 1、当税率为：0%，且增值税特殊管理：为“免税”， 零税率标识：需传“1”
    // 2、当税率为：0%，且增值税特殊管理：为"不征税" 零税率标识：需传“2”
    // 3、当税率为：0%，且增值税特殊管理：为空 零税率标识：需传“3”
    //（全电发票时为空）
    private String zeroRateFlag;

}
